﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace EF
{
    class Program
    {
        static void Main(string[] args)
        {
            /*
             1.创建上下文  Model1 mo = new Model1();
            2.查找对象(括号里是条件) var task = mo.Task.FirstOrDefault(p => p.TaskID == 1);
             3.直接判断让后吧要修改的直接写入
             if (task != null) {
               task.TaskState = 2;
                task.FinishedTime = DateTime.Now;
            };
            4.将其回发数据库  task.FinishedTime = DateTime.Now;
             */
            //修改
            Model1 mo = new Model1();
            var task = mo.Task.FirstOrDefault(p => p.TaskID == 1);
            if (task != null) {
               task.TaskState = 2;
                task.FinishedTime = DateTime.Now;
            };
            mo.SaveChanges();
            ///*
            // * EF删除
            // * 1.创建上下文          Model
            // * 2.查找对象 FirstOrDefault() where()
            // *3.!=null 删除 Model.数据集.Remove(对象) RemoveRange（对象集合）
            // * 4.同步到数据库   Model.SaveChanges();
            // */
            ////创建上下文
            //   Model1 mo = new Model1();
            //   //查找条件
            //   var task = mo.Task.FirstOrDefault(p => p.TaskID == 6);
            //   //判断
            //   if (task != null)
            //   {
            //       //执行删除操作
            //       mo.Task.Remove(task);
            //       //保存到数据库
            //       mo.SaveChanges();
            //   
            /*
            * EF添加
            * 1.创建上下文          Model
            * 2.Model.数据集 并对竖井进行赋值  new T(){}；
            *3.添加到数据集  Model.数据集.Add(对象) AddRange(对象集合)
            * 4.同步到数据库 Model.SaveChanges();
            */
            ////添加
            //         Model1 mo = new Model1();
            //         Task tas = new Task()
            //     {
            ////将数据库中的非空的添加进来，同时时间和日期默认值也必须添加
            //           AddTime=DateTime.Now,
            //         Content="实现添加",
            //            uid=1
            //          };
            ////将其添加
            //            mo.Task.Add(tas);
            ////保存到数据库
            //           mo.SaveChanges();

            /*
             * EF查询
             * 1.创建上下文Model
             * 2.Model.数据集 添加条件（有的话）
             *   2.1返回单个 FirstOrDefault
             *   2.2返回不确定 where
             */
            Model1 model1 = new Model1();
            var list = model1.Task.Where(p => p.Content.Contains("实现")).ToList();
            foreach (var item in list)
            {
                Console.WriteLine(item.TaskID + "\t" + item.Content);
            }
            Console.ReadKey();
        }
    }
}
